//VARIABLES GLOBALES
var mascara  = {mask:"999,999,999,999",type:"reverse",defaultValue:""};
var divisaId = null;

$(document).ready(function () {
	cambiarDivisa();
	$(".importe").each(function () {
		$(this).setMask({mask:"999,999,999,999",type:"reverse",defaultValue:""});
	});
	$(".monto").each(function () {
		$(this).setMask({mask:"999,999,999,999",type:"reverse",defaultValue:""});
		actualizarUnidad(this);
	});
	$(".monto").keypress(function () {
	    actualizarUnidad(this);
	});
	$(".monto").change(function () {
	    actualizarUnidad(this);
	});
	$("#btnTraspasar").click(function () {
		var selDivisa = document.getElementById("selDivisa");
		if(validarDatos(selDivisa.value)) {
			var nomDivisa = selDivisa.options[selDivisa.selectedIndex].text;
			if(confirm("Est� seguro de realizar el traspaso de salidad de "+NOMBRE_TIPO_CAJA+" con tipo de divisa "+nomDivisa+"?")) {
				grabarDatos();
			}
		}
	});
});
function grabarDatos() {
	var secuenciaIds = "";
	var montos       = "";
	var datos        = "";
	$(".i"+divisaId).each(function () {
		secuenciaIds += "i="+this.value+"&";
	});
	$(".m"+divisaId).each(function () {
		montos += this.name+"="+this.value+"&";
	});
	var remCod = "remCod="+$("#selRemesa").val()+"&";
	var cajCod = "cajCod="+$("#cajCod"+divisaId).val()+"&";
	var divCod = "divCod="+divisaId+"&";
	var monDet = "monDet="+$("#monDet"+divisaId).val()+"&";
	var patCal = "patCal="+$("#patCal"+divisaId).val()+"&";
	var monTot = "monTot="+$("#monTot"+divisaId).val()+"&";
	
	datos = remCod + cajCod + divCod + secuenciaIds + montos + monDet + patCal + monTot;
	
	$.ajax({
        type: "post",
        url: "traspaso.do?method=save",
        data: "abc=123&"+datos,
        success: function(xml) {
			var resultado = new ResultadoOperacion();
			resultado.cargarParametros(""+xml);
			if(resultado.tipo == "exito") {
				//$("#cajEdi"+divisaId).val("false");
				//$("#cajEst"+divisaId).val(ESTADO_CAJA_APERTURADA_ID);
				//cambiarDivisa();
			}
			resultado.mostrarMensaje();
    	}
    });
}
function validarDatos(divisaId) {
	var mensaje = "";
	var existe = false;
	//1.- VALIDAMOS LOS MONTOS INVALIDOS (MULTIPLOS)
	$(".m"+divisaId).each(function () {
	    if(this.style.color == "red") {
	    	mensaje += "- Existen montos con valores inv�lidos\n";
	    };
	});
	//2.- VALIDAMOS EL INGRESO DE DATOS
	$(".m"+divisaId).each(function () {
		var valor = ""+this.value;
		var re = new RegExp(",","ig")
		valor = valor.replace(re,"");
	    if(valor*1 > 0) {
	    	existe = true;
	    };
	});
	if(existe == false) {
		mensaje += "- No se ha ingresado ning�n valor\n";
	}
	//3.- VALIDAMOS EL IMPORTE CON EL TOTAL
	var importe = reemplazarCaracteres($("#importe").val(),",","")*1.0;
	var total   = reemplazarCaracteres($("#monTot"+divisaId).val(),",","")*1.0;
	
	if(importe != total) {
		mensaje += "- El importe es diferente al monto total de la "+NOMBRE_TIPO_CAJA+"\n";
	}
	//4.- VALIDAMOS QUE EXISTAN REMESAS
	if($("#selRemesa").val() == "" || $("#selRemesa").val() == null) {
		mensaje += "- No existe una remesa disponible para hacer el traspaso.\n";
	}

	if(mensaje != "") {
		mensaje = "No se puede aperturar la "+NOMBRE_TIPO_CAJA+" por los siguientes motivos:\n\n" + mensaje;
		alert(mensaje);
		
		return false;
	} else {
		return true;
	}
}
function actualizarMontoTotal() {
	var montoTotal = 0;
	$(".m"+divisaId).each(function () {
		//alert("ingresp");
		var valor = this.value;
		var re = new RegExp(",","ig")
		valor = (valor.replace(re,""))*1.0;
	    montoTotal += valor;
	});
	//alert(montoTotal);
	$("#monTot"+divisaId).val(montoTotal);
	$("#monTot"+divisaId).setMask(mascara);
}
function actualizarUnidad(denoIn) {
	var nombre = denoIn.name;
	var valor  = denoIn.value;
	var numero = null;
	var unidad = null;
	try {
		var re = new RegExp(",","ig")
		valor = valor.replace(re,"");
		
		numero = $("#numero_"+nombre).text();
		unidad = valor/numero;
		//alert(numero+", "+valor+", "+unidad);
		var fila = document.getElementById("unidad_"+nombre).parentNode;
		
		if((""+unidad).indexOf(".") > -1) {
			denoIn.style.color      = "red";
			denoIn.style.fontWeight = "bold";
			fila.className          = "error";
		} else {
			denoIn.style.color      = "";
			denoIn.style.fontWeight = "";
			fila.className          = "";
		}
	} catch (e) {
		// TODO: handle exception
	}
	$("#unidad_"+nombre).text(unidad);
	$("#unidad_"+nombre).setMask(mascara);
	
	actualizarMontoTotal();
}
function cambiarDivisa() {
	//
	if(divisaId != null) {
		$("#tblCaja"+divisaId).css("display", "none");
	}
	//
	divisaId = $("#selDivisa").val();
	$("#tblCaja"+divisaId).css("display", "");
	
	//Habilitamos o deshabilitados de acuerdo al estado de la caja
	var deshabilitar = ($("#cajEdi"+divisaId).val() == "true")?"":"true";
	
	$(".m"+divisaId).attr("disabled", deshabilitar);
	$("#monDet"+divisaId).attr("disabled", deshabilitar);
	$("#patCal"+divisaId).attr("disabled", deshabilitar);
	$("#btnTraspasar").attr("disabled", deshabilitar);
	
	determinarEstado();
}
function determinarEstado() {
	var estadoId = $("#cajEst"+divisaId).val();
	$("#tblEstadoCaja").find("TR").each(function () {
		var estadoIdAux = $(this).find('TD:eq(0)').text();
		if(estadoId == estadoIdAux) {
			$("#estDivisa").text($(this).find('TD:eq(1)').text());
		}
	});
}